'use strict'

module.exports = {

  //自动启动数据库服务
  dbserver: true,

  //数据库配置
  dbconfig: {
    database: 'webdata',
    user: 'h5server',
    passwdord: '',
    max: 10,
    host: '127.0.0.1',
    //数据库服务运行端口，postgresql默认端口是5432。
    port: 5678
  },

  pgsqlVersion: 'pgsql-14.x',

  dbschema: 'hs',

  //服务端运行端口号
  port: 2023,
  
  worker: 2,

  //自动根据负载情况创建新的worker的最大限制。
  //其数量不是无限制的，最高不能超过cpu核心数量的2倍。
  //框架内部会进行检测并设定一个合法的值。
  autoWorker: 5,

  //跨域请求的配置
  cors: {
    /**
     * 允许跨域的域名，多个域名使用数组。
     *  '*' 表示任何域名都可以。
     * 数组格式示例：[
     *   'https://a.com',
     *   'https://api.a.com',
     *   'https://www.a.com',
     *   'https://xx.com'
     * ]
     */
    allow: '*',
    //跨域请求允许的消息头，多个消息头使用 , 分隔。
    allowHeaders : 'authorization,content-type,x-refresh-token',

    //OPTIONS请求缓存300秒，此期间浏览器请求会先去读取缓存。
    optionsCache: 300,

    //默认为'*'，可以设置允许的请求方法。
    //requestHeaders : '*'

    //默认为''，表示哪些消息头可以暴露给请求端，多个消息头使用 , 分隔。
    exposeHeaders: 'x-refresh-token',

    //是否允许消息头referer为空或不带有referer消息头请求接口。
    //这种情况发生在直接在浏览器访问接口或使用其他客户端访问接口的情况。
    allowEmptyReferer: true,
  },

  //开启https
  https: false,

  //启用http2协议
  http2: false,

  //启用兼容模式，将会开启http2服务，但是兼容http/1.1协议。
  //若设置此选项为true，必须要设置cert和key。
  httpCompatible: false,

  /**
   * 当前服务提供了测试证书，注意此证书不被浏览器认可，不能作为正式服务的证书使用。
   */
  //https证书文件路径，一般是 .pem 或 .crt 或 .cert文件，也可能是.der .cer等格式。
  cert: __dirname + '/cert/localhost.cert',

  //https私钥文件路径，一般是 .key 或 .pem 文件。
  key:  __dirname + '/cert/localhost_private.key',

  /**
   * 以下三项admin、api、sys针对controller目录下的amdin、api、sys目录分组设计。
   */
  //admin模块使用titbit-token进行会话验证。
  admin: {
    //必须是32个字符
    key: '12345678901234567890123456789011',
    //10个小时有效，毫秒单位
    expires: 3600_000_0
  },

  api: {
    key: '12345678901234567890012345678923',
    expires: 3600000
  },

  //sys目录下的接口只需要一个key作为密码验证即可。
  //sys目录下的接口主要作为系统内部的服务调用使用。
  sys: {
    key: '2022.web.ok'
  }

}